freecivfandomcom-20200223-history
NEWS-2.5.0-beta2
= WHAT'S CHANGED SINCE 2.5.0-beta1 = Highlights of this release are a new map generator, a basically complete Qt client, and a large number of bug fixes. Server / General Changes affecting players (supplied rulesets) * New map generation features ported from warserver: ** 'Fair' island map generator ('generator=fair'), which creates an identical island for each player or team. ** New server setting 'teamplacement', allowing control of whether team-mates start near each other on the map. * Barbarian players no longer get a free Palace when they conquer a city. (This was a recent regression, only introduced in beta1.) * When a city is struck by plague, it now cannot grow again in the same turn. * When following orders into fogged territory, a unit will now abort its orders if it runs into an unexpected unit or city on its last step (rather than blindly attacking, etc). * When there are multiple possible transports for a unit to load onto, the server is cleverer about choosing one. Among other criteria, idle transports are preferred, as are those from which units can unload at any time. This preference order is now used in more circumstances. * Numerous fixes to research in games with teams: ** With team_pooled_research enabled: *** Technology cost now takes into account effects from all players in the team; previously it was picking a random player for Novice AI science penalty, cost reduction from embassies in civ2civ3, etc. *** Similarly, tech upkeep now takes into account all players in a team. Notably, in the civ2civ3 ruleset, upkeep scales with the total number of cities in a team, not those of a random team member. *** If a technology is lost, all team members share the effects (such as losing their government), and all clients can see that the tech is lost. *** All clients are kept up to date with accurate progress of current research. ** With team_pooled_research disabled: only one player per team was getting the free techs given at the start of the game (e.g., with the 'techlevel' setting). * Other fixes to tech loss: ** There was a small chance of technology not being lost when it should have been. ** The server's count of a player's technologies was not reduced. This could cause technology cost to be too high and have other bad effects. ** Ruleset effects that survived the global loss of a technology (such as wonder obsoletion) did not survive a save/reload cycle. * Fixes to rulesets with root requirements in their technology tree, such as the experimental ruleset: ** Research could fail to pick the next technology toward a faraway goal. ** Fix general slowness (sometimes extreme) in such rulesets. * Tech upkeep cost was slightly larger than intended. * Fix numerous problems with visibility of unit movement and destruction: ** Fix bugs that could leave a 'ghost' unit visible in clients, such as land units alone in the sea ( ): *** If a foreign unit was briefly visible loading onto a transport. *** If a barbarian unit reached the end of its life while on a transport. ** Fix trouble when a city is transferred, particularly by diplomatic treaty. ** Transported units or those in cities could fail to be revealed when entering an alliance. ** Fix some bugs and error messages related to visibility of foreign units loading and unloading from transports. ** An assertion could fail when foreign transports moved out of sight. ** Fix client error "Server wants us to remove unit" when witnessing the defeat of a cargo-carrying transport in a game with 'killstack' disabled, or in complicated alliance breakup situations. ** Fix some bugs related to visibility of units moved or killed as a result of other units' movement, for instance by a ruleset script; and show unit movement in more cases where units move into or out of visibility. ** Fix some cases where unit information was not sent correctly to global observers. * Units were spuriously prevented from moving from one transport to another. * 'unitwaittime' now applies to exploding nuclear units in place as well as to regular attacks. * Investigating an empty city that was previously known to contain units mistakenly displayed the former units as still present/supported. * When the 'foggedborders' server option was enabled, border information was not included in map transfers between players. * Fix a server crash when paradropping. * Fix a possible server crash when a diplomat is killed after bribing a unit. * Fix a possible assertion failure from autosettlers. * Fix some assertion failures when changing player (for instance in edit mode). * Fix bugs with taking AI players and entering/leaving AI or 'away' mode: ** Taking an AI player could leave the player with invalid tax rates. ** Putting a player who'd previously been /away under full AI control could leave them with the conservative 'away' skill level rather than a proper AI skill level. ** AI state was not set up and cleared correctly when changing '/away' mode. For the classic AI, this could lead to incorrect defense calculations. ** 'autotoggle' and 'aitoggle' now work for barbarian players (as 'away' did before). * Minor fixes to civ2civ3 ruleset corner cases: ** You can no longer sell your Aqueduct after building a Sewer System and still have your city grow. ** Triremes starting their turn in coastal river cities missed out on the Lighthouse move bonus. ** Barbarian players without a capital no longer suffer crippling corruption and waste. ** Prevent Transport units from performing land terrain improvements while in cities. ** Ensure that cold war and related effects survive destruction of Apollo Program and/or Manhattan Project. ** Treat Solar Plants as redundant with the Hoover Dam. * Fixes to the multiplayer ruleset: ** Ensure notifications are sent out about new technologies gained from Philosophy or Darwin's Voyage. * In the classic and experimental rulesets, close a loophole where a Lighthouse and Port Facility together could yield hardened sea units. (This would have required a very unusual game.) * Prevent diplomacy with barbarian players in the civ1 and civ2 rulesets (in civ1, it was possible to attempt treaty with pirates but not barbarians). * Map generation fixes: ** When map generation leads to a change in settings, announce the fallback settings afterwards. If multiple attempts are required to generate a map, reset these settings between each attempt. ** The 'tilesperplayer' setting is now enacted more accurately. ** Remove spurious assertion failures about MAP_MAX_LINEAR_SIZE when generating large maps. * For the purposes of credit in the rank log, any user detaching from a player (even an observer) was resetting the username used for ranking. For now the ranking rules have been reverted to those used up until 2.3.2. * Fixes to voting: ** Do not call votes which will immediately pass (for instance if a user is alone on a server). ** Fix incorrect vote information displayed in a client which connects while a vote is in progress. * The 'surrender' command now does additional sanity checks. * Fix display of team names. * Silence some warnings when loading games saved with previous versions: ** Spurious "City size and number of citizens does not match" warnings from 2.4 default ruleset games. ** "Trying to put into 8 bits" warnings from pre-2.3 savegames. Changes affecting other rulesets / modders * When upgrading a unit which has the NoVeteran flag (cannot gain veteran levels through experience), any existing veteran levels are no longer discarded. * The server now handles the case of a city being destroyed while being transferred (which is most likely to happen as a result of a Lua script). * If team_pooled_research is enabled, the tech_researched script signal is now sent to all players on a team, not just one of them. * Lua scripts can determine whether two players share research with the new (Player):shares_research() function. * Calling (Tile):has_base() in Lua with a nonexistent base name could crash the server. * Clients were not always kept up to date after a Lua script called (Tile):set_label(). * Extra sanity checking when loading rulesets. * Apply patch 2 to the included Lua 5.2.3. Changes affecting server operators * On Unix, the server could fail to start again shortly after quitting, dying with "bind failed: Address already in use". This was a regression from 2.4. * Comments are now only accepted at the start of a server command line, allowing a '#' character to be entered in commands. * Servers built with support for multiple database backends could only use one of them. * The event cache can now store much more history. * Some of the settings in server scripts written by the '/write' command did not take effect, because the 'rulesetdir' command at the end was resetting settings set earlier in the script. * When the server was in edit mode, detached clients could receive unwanted packets and emit warnings. * Creating a player midgame (with /create or Lua script) didn't initialize city style and gender correctly. * The /create command now validates the AI type argument better. * When built without readline support, the server could stop accepting input after an empty line. * More robustness against loading invalid savegames. * Send more information to metaserver: nation flag tag ( ) and ruleset name ( ). General * Numerous improvements to pathfinding, used for client goto and for the AI: ** Units which will be unable to move next turn but still have move points this turn (for instance due to tech loss) are now handled correctly. (This could lead to premature nuclear explosion in rulesets where nuclear units require extra technology to move, such as civ2civ3.) ** Fix some possible issues for units with more than one turn of fuel, such as bombers. ** A collection of general fixes which, together with client-specific fixes, we hope will resolve a client crash observed on Windows ( ), and probably fix other bugs too. ** Other minor fixes and speed improvements. * Already-built wonders are now dismissed when considering what players can ever build. This affects the client city UI and may also affect AI behavior. * Fix a bug which could cause strings to contain invalid/truncated UTF-8 sequences. * Fix/improve diagnostic messages in error cases, notably including network failures. * Fix a possible crash when an --enable-debug build tried to print a very deep backtrace. * Some optimization for speed, particularly on the server, some as a result of profiling analysis. * Memory savings and leak fixes. * Various internal changes which should only affect developers. AI * The AI can now take into account the defense value of existing bases when picking a site for a new city. * The AI now counts the pillaging of any fortress it owns against the responsible player, even if that caused it to lose the territory on which the fortress stood. * The AI was undervaluing units defined as good defenders in the ruleset, and overvaluing 'OK' defenders. * The AI was undervaluing cities in various ways for the purpose of diplomatic treaties. * The AI now considers the effect of the 'diplcost' setting when evaluating the value of a gold transfer clause in a treaty. * The AI's evaluation of improvement benefits was broken in the presence of effect clauses with zero value in the ruleset. (Should not affect most rulesets, but may sometimes occur when testing a new ruleset.) * Some fixes to the AI's evaluation of benefits in rulesets using negated requirements. Does not affect the supplied rulesets. * Fix some possible crashes with the threaded AI. * Allow threaded AI to be built in without classic AI. Clients * The Qt client is now substantially complete, with many features added since beta1. * The Windows Gtk client is built against a different Gtk version, fixing major problems in East Asian locales, including inability to use the chatline and other text boxes, and failure to display the online help. * Fix a longstanding bug in the Gtk client that could make it impossible to select a new government. * The client now supports loading a save file from the command line directly, with the --file command line option. * The 'Explode Nuclear' command is now more careful; previously, if the nuclear unit was unable to reach the specified destination (or move at all), it would explode regardless (this could happen due to 'unitwaittime', due to another bug). Also, the command now supports setting waypoints. * Various fixes to client goto. (Some of these may resolve a client crash observed on Windows: .) ** Ignore duplicate waypoints in client goto, and attempts to go nowhere. ** Improve behaviour if a unit moves or is lost while the user is in the middle of specifying a goto. * Fix client error messages when manipulating units with a zero move rate. * Some fixes to spy and caravan action dialogs: ** Some buttons were active when the relevant action was not available. ** (Gtk) When multiple spy action dialogs were active at the same time, orders could end up being issued to the wrong unit. * Fix a random client crash or error message after selecting 'Connect to Network Game'. * Fix a cause of the client starting a server which it then could not connect to. * Fix error messages and possible instability when the city governor is working on a city that has been destroyed. * The client could report an incorrect ping time when the real time was not yet known. * Fix some graphical glitches when moving units. * Fix an error message when observing a player who is building a spaceship. * Map editor fixes and improvements: ** Make it possible to select a nation for barbarian players. Prevent setting normal players to barbarian and other unsuitable nations. ** Players' research progress can now be edited. ** Fix bugs in tile copy and paste: *** Tiles were pasted in completely the wrong place. *** Copying units could cause assertion failures. *** The client could remember possibly-invalid tiles from one game to the next. * (Gtk) With the 'Help' box checked in the science dialog, technology help would pop up randomly at turn end and other times. * (Gtk) The apostrophe key now focuses the chatline in pregame (as it already did during play). * (Gtk) Fix an assertion failure on quit after opening the Lua console. * (Gtk3) Clicking on specialists in the city dialog did the wrong thing. * (Gtk3) Fix a bug causing the chat window to be minimised after reconnecting, and assertion failures. * (Gtk3) Various display issues: ** Fix problems with flag display. ** Fix fog-of-war in some tilesets. ** Miscellaneous cosmetic tweaks. * (SDL) The SDL client now supports changing nation sets. * (SDL) Fix client crash when attempting industrial sabotage of a city with no buildings. * (SDL) Don't prevent bases from being built on city center tiles in rulesets which allow this. * (SDL) Fix incorrect background color on some dialogs. Tilesets / Art * The Cimpletoon tileset now includes graphics for the Migrant unit in the civ2civ3 ruleset. * The maglev graphics in the Amplio2 and Cimpletoon rulesets were never displayed. * Enable display of mines on water in all supplied tilesets, to support modpacks with different mining rules from the supplied rulesets. * Added a sound effect for an illegal server command to the standard soundset. Help / Documentation * Minor improvements and corrections to civ2civ3 ruleset help. * Minor improvements to help for other supplied rulesets. * Barbarian nations were omitted from the online help. * Fix a large number of assertion failures when running the freeciv-manual tool. * Miscellaneous improvements to in-game text and user documentation. * Miscellaneous changes to developer/ruleset docs. * Invisible changes to assist localization. Translations * Updated translations: ** Complete translations: French. ** Incomplete translations: Polish (99.9% core, 100% nations), Catalan (99.5% core, 100% nations), British English (98.4% core, 100% nations), Finnish (89% core, 87% nations), Scottish Gaelic (88% core, 84% nations), German (88% core, 84% nations). Build/portability * Fix some compiler warnings. Build is now Clang-clean (with 3.3, 3.4, and 3.5). * Fix compiler invocation to avoid a warning about -fopenmp from Clang. * Better diagnostics for failure to build the Qt client (particularly in the absence of a usable C++ compiler). * Fix compilation with Glib older than 2.32. * Fix a possible failure to find SDL headers at configure time. * Fix failure to build twice in a row due to missing mkinstalldirs. * New configure options --with-desktopdir and --with-appdatadir for finer control of installation locations. * Add search keywords to .desktop files. * The --enable-fcweb configure option is not yet useful in 2.5, so remove it. * The outdated 'vms' directory is no longer distributed. See NEWS for older lists of changes. Category:NEWS